	关系表类型，这是一个很强大的类型。我们可以把这个类型看作是一个数组。只是C语言的数组，只能用正整数来作索引；在Lua中，你可以用任意类型来作数组的索引，除了nil。同样，在C语言中，数组的内容只允许一种类型；在Lua中，你也可以用任意类型的值来作数组的内容，除了nil。

　　　　Table的定义很简单，它的主要特征是用"{"和"}"来括起一系列数据元素的。比如：

 

　　　　T1 = {} -- 定义一个空表

　　　　T1[1]=10 -- 然后我们就可以象C语言一样来使用它了。

　　　　T1["John"]={Age=27, Gender="Male"}

　　　　这一句相当于：

　　　　T1["John"]={} -- 必须先定义成一个表，还记得未定义的变量是nil类型吗

　　　　T1["John"]["Age"]=27

　　　　T1["John"]["Gender"]="Male"

　　　　当表的索引是字符串的时候，我们可以简写成：

　　　　T1.John={}

　　　　T1.John.Age=27

　　　　T1.John.Gender="Male"

　　　　或

　　　　T1.John{Age=27, Gender="Male"}

　　　　这是一个很强的特性。

 

　　　　在定义表的时候，我们可以把所有的数据内容一起写在"{"和"}"之间，这样子是非常方便，而且很好看。比如，前面的T1的定义，我们可以这么写：

 

　　　　T1=

　　　　{

　　　　　　10, -- 相当于 [1] = 10

　　　　　　[100] = 40,

　　　　　　John= -- 如果你原意，你还可以写成：["John"] =

　　　　　　{

　　　　　　　　Age=27,   -- 如果你原意，你还可以写成：["Age"] =27

　　　　　　　　Gender=Male   -- 如果你原意，你还可以写成：["Gender"] =Male

　　　　　　},

　　　　　　20 -- 相当于 [2] = 20

　　　　}

 

　　　　看起来很漂亮，不是吗？我们在写的时候，需要注意三点：

　　　　第一，所有元素之间，总是用逗号"，"隔开；

　　　　第二，所有索引值都需要用"["和"]"括起来；如果是字符串，还可以去掉引号和中括号；

　　　　第三，如果不写索引，则索引就会被认为是数字，并按顺序自动从1往后编；

 

　　　　表类型的构造是如此的方便，以致于常常被人用来代替配置文件。是的，不用怀疑，它比ini文件要漂亮，并且强大的多。